package com.yuncheng.spcyApi.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuncheng.spcyApi.dto.FlowJobHistoryDto;
import com.yuncheng.spcyApi.entity.SpcySqsxJob;
import com.yuncheng.spcyApi.vo.common.OrderItemVo;
import com.yuncheng.spcyApi.vo.flow.SpcyJobSxVo;
import com.yuncheng.spcyApi.vo.flow.SpcyJobXqVo;
import com.yuncheng.spcyApi.vo.sqsx.SqsxJobFlowVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description: 审评查验申请事项的流转记录
 * @Author: csx
 * @Date: 2023-03-01
 * @Version: V1.0
 */
public interface SpcySqsxJobMapper extends BaseMapper<SpcySqsxJob> {

    // 遴选计划-审批流程-待办查询
    Page<SqsxJobFlowVo> selectFlowJobPage(Page<SqsxJobFlowVo> page,
                                          @Param("userid") String userid,
                                          @Param("flowVo") SqsxJobFlowVo flowVo,
                                          @Param("orderBean") OrderItemVo orderItemVo);

    /**
     * 查询流程任务列表
     * @return
     */
    List<SpcySqsxJob> selectJobListByFpid(@Param("pid")String pid,
                                          @Param("fhjmc")String fhjmc,
                                          @Param("flcmc")String flcmc,
                                          @Param("orderFlag") String orderFlag);

    /** 查询环节名称-根据id */
    SpcySqsxJob selectFhjmcById(@Param("id") String id);

    /** 查询环节是否存在待办 */
    List<String> selectIdsByFhjmc(@Param("pid")String pid, @Param("fhjmc") String fhjmc, @Param("fhjmc2") String fhjmc2);

    /** 查询不等于指定环节是否为待办 */
    List<String> selectIdByFhjmc(@Param("fpid") String fpid, @Param("fhjmc") String fhjmc);

    /** 查询流程详情-根据id */
    SpcyJobXqVo selectJobInfoById(@Param("id") String id);

    /** 查询待办任务id */
    List<String> selectDbIdByFpidAndFhjmc(@Param("fpid") String fpid, @Param("fhjmc") String fhjmc);

    /** 查询已办流程任务列表-根据多个环节和业务id */
    List<SpcySqsxJob> selectYbJobListByHjList(@Param("fpid") String fpid,
                                              @Param("fblzt") String fblzt,
                                              @Param("hjmcs") List<String> hjmcs);

    /** 查询待办所有环节列表-根据业务id和流程名称 */
    List<String> selectDbFhjmcListByFpid(@Param("fpid") String fpid, @Param("flcmc") String flcmc);

    /** 查询历史流程记录列表 */
    List<FlowJobHistoryDto> selectHistoryListByFpidAndFlcmc(@Param("fpid") String fpid, @Param("flcmc") String flcmc);

    /** 查询流程任务待办时限相关内容 */
    List<SpcyJobSxVo> selectDbJobSxListByFpid(@Param("fpid") String fpid,
                                              @Param("fhjmc") String fhjmc,
                                              @Param("flcmc") String flcmc);

}
